import request from '@/utils/request'

// 模拟班次数据
const mockShiftData = [
  {
    id: '1',
    postId: '1',
    shiftName: '早班',
    shiftTimePeriod: '08:00:00-16:00:00',
    isEnabled: 1
  },
  {
    id: '2',
    postId: '1',
    shiftName: '晚班',
    shiftTimePeriod: '16:00:00-24:00:00',
    isEnabled: 1
  },
  {
    id: '3',
    postId: '2',
    shiftName: '白班',
    shiftTimePeriod: '06:00:00-18:00:00',
    isEnabled: 1
  },
  {
    id: '4',
    postId: '3',
    shiftName: '全天班',
    shiftTimePeriod: '00:00:00-24:00:00',
    isEnabled: 1
  }
];

// 查询班次列表
export function listShift(query) {
  return request({
    url: '/system/shift/list',
    method: 'get',
    params: query
  })
}

// 查询班次详细
export function getShift(id) {
  // 使用模拟数据
  const shift = mockShiftData.find(item => item.id === id);

  if (shift) {
    return Promise.resolve({
      code: 200,
      data: shift
    });
  } else {
    return Promise.reject(new Error('班次不存在'));
  }

  // 实际接口调用（注释掉）
  // return request({
  //   url: '/system/shift/' + id,
  //   method: 'get'
  // })
}

// 新增班次
export function addShift(data) {
  // 使用模拟数据
  const newShift = {
    ...data,
    id: String(mockShiftData.length + 1)
  };
  mockShiftData.push(newShift);

  return Promise.resolve({
    code: 200,
    message: '新增成功'
  });

  // 实际接口调用（注释掉）
  // return request({
  //   url: '/system/shift',
  //   method: 'post',
  //   data: data
  // })
}

// 修改班次
export function updateShift(data) {
  // 使用模拟数据
  const index = mockShiftData.findIndex(item => item.id === data.id);
  if (index !== -1) {
    mockShiftData[index] = { ...mockShiftData[index], ...data };
    return Promise.resolve({
      code: 200,
      message: '修改成功'
    });
  } else {
    return Promise.reject(new Error('班次不存在'));
  }

  // 实际接口调用（注释掉）
  // return request({
  //   url: '/system/shift',
  //   method: 'put',
  //   data: data
  // })
}

// 删除班次
export function delShift(id) {
  // 使用模拟数据
  const index = mockShiftData.findIndex(item => item.id === id);
  if (index !== -1) {
    mockShiftData.splice(index, 1);
    return Promise.resolve({
      code: 200,
      message: '删除成功'
    });
  } else {
    return Promise.reject(new Error('班次不存在'));
  }

  // 实际接口调用（注释掉）
  // return request({
  //   url: '/system/shift/' + id,
  //   method: 'delete'
  // })
}

// 批量删除班次
export function delShiftBatch(ids) {
  // 使用模拟数据
  const idArray = ids.split(',');
  let deletedCount = 0;

  idArray.forEach(id => {
    const index = mockShiftData.findIndex(item => item.id === id);
    if (index !== -1) {
      mockShiftData.splice(index, 1);
      deletedCount++;
    }
  });

  return Promise.resolve({
    code: 200,
    message: `成功删除${deletedCount}个班次`
  });

  // 实际接口调用（注释掉）
  // return request({
  //   url: '/system/shift/batch/' + ids,
  //   method: 'delete'
  // })
}

// 批量保存班次
export function batchSaveShift(data) {
  // 使用模拟数据
  data.forEach(shift => {
    if (shift.id) {
      // 更新
      const index = mockShiftData.findIndex(item => item.id === shift.id);
      if (index !== -1) {
        mockShiftData[index] = { ...mockShiftData[index], ...shift };
      }
    } else {
      // 新增
      const newShift = {
        ...shift,
        id: String(mockShiftData.length + 1)
      };
      mockShiftData.push(newShift);
    }
  });

  return Promise.resolve({
    code: 200,
    message: '批量保存成功'
  });

  // 实际接口调用（注释掉）
  // return request({
  //   url: '/system/shift/batchSave',
  //   method: 'post',
  //   data: data
  // })
}
